with open('ref.bib', 'r', encoding='utf-8') as file:
    lines = file.readlines()

    # 遍历文件的每一行
    for index, line in enumerate(lines):
        line = line.strip()

        # 检查 title 中，除了首个单词外，出现首字母为大写的单词
        if line.startswith("title"):
            title = line.split('=')[1].strip().strip('{}')
            words = title.split()
            for word in words[1:]:
                if word.istitle():
                    print(f"标题中出现除首字母外大写的单词: {title}")
                break

        # 检查 booktitle 中，出现首字母为小写的单词
        if line.startswith("booktitle"):
            book_title = line.split('=')[1].strip().strip('{}')
            words = book_title.split()
        for word in words:
            if word.islower():
                print(f"图书标题中出现首字母小写的单词: {book_title}")
            break

        # 输出 journal 对应的 title 名或 booktitle 名和对应的 journal 名，如果 journal 中没有出现字符 "."
        if line.startswith("journal"):
            journal_name = line.split('=')[1].strip().strip('{}')
        if '.' not in journal_name:
            if index > 0:
                prev_line = lines[index - 1].strip()
            if prev_line.startswith("title"):
                title_name = prev_line.split('=')[1].strip().strip('{}')
                print(f"Journal '{journal_name}' 对应的 title 名: {title_name}")
            elif prev_line.startswith("booktitle"):
                book_title_name = prev_line.split('=')[1].strip().strip('{}')
                print(f"Journal '{journal_name}' 对应的 booktitle 名: {book_title_name}")

    print("格式检查完成。")